1666D - Deletive Editing - CodeForces Solution


greedy

Please click on ads to support us..

Python Code:

def solve():
    a, b = input().split()
    count = []
    for i in range(30):
        count.append(0)

    for c in a:
        n = ord(c) - ord('A')
        count[n] += 1

    for c in b:
        n = ord(c) - ord('A')
        count[n] -= 1
        if count[n] < 0:
            print("NO")
            return

    res = ''
    for c in a:
        n = ord(c) - ord('A')
        if count[n] == 0:
            res += c
        else:
            count[n] -= 1

    if res == b:
        print("YES")
    else:
        print("NO")


N = int(input())
for test in range(N):
    solve()


Comments

Submit
0 Comments
More Questions

1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math